### socket_base

The `socket_base` class is used as a base for the `basic_stream_socket` and `basic_datagram_socket` class templates so that we have a common place to define the shutdown_type and enum.

    class socket_base

##### Types

Name | Description
--- | ---
broadcast | Socket option to permit sending of broadcast messages.
bytes_readable | IO control command to get the amount of data that can be read without blocking.
debug | Socket option to enable socket-level debugging.
do_not_route | Socket option to prevent routing, use local interfaces only.
enable_connection_aborted | Socket option to report aborted connections on accept.
keep_alive | Socket option to send keep-alives.
linger | Socket option to specify whether the socket lingers on close if unsent data is present.
message_flags | Bitmask type for flags that can be passed to send and receive operations.
out_of_band_inline | Socket option for putting received out-of-band data inline.
receive_buffer_size | Socket option for the receive buffer size of a socket.
receive_low_watermark | Socket option for the receive low watermark.
reuse_address | Socket option to allow the socket to be bound to an address that is already in use.
send_buffer_size | Socket option for the send buffer size of a socket.
send_low_watermark | Socket option for the send low watermark.
shutdown_type | Different ways a socket may be shutdown.
wait_type | Wait types.

##### Protected Member Functions

Name | Description
--- | ---
~socket_base [destructor] | Protected destructor to prevent deletion through this type.

##### Data Members

Name | Description
--- | ---
max_listen_connections [static] | The maximum length of the queue of pending incoming connections.
message_do_not_route [static] | Specify that the data should not be subject to routing.
message_end_of_record [static] | Specifies that the data marks the end of a record.
message_out_of_band [static] | Process out-of-band data.
message_peek [static] | Peek at incoming data without removing it from the input queue.

##### Requirements

Header: `asio/socket_base.hpp`

Convenience header: `asio.hpp`